package com.vviton.zyhj.consumer.provider;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;

import com.vviton.zyhj.common.base.BaseService;
import com.vviton.zyhj.common.common.GlobalConstants;
import com.vviton.zyhj.common.common.ValidatorConstants;
import com.vviton.zyhj.common.dao.TYyxtDdglYhdzbMapper;
import com.vviton.zyhj.common.entity.TYyxtDdglYhdzb;
import com.vviton.zyhj.common.utils.ErrorBean;
import com.vviton.zyhj.common.utils.ResultJson;

/**
 * ClassName: LpdhCorsServiceImpl <br/>
 * Function: T 收货地址外面接口. <br/>
 * Date: 2017年4月1日 上午10:44:37 <br/>
 *
 * @author zhucb
 * @version 1.0
 * @since JDK 1.7
 */
public class LpdhCorsServiceImpl extends BaseService implements LpdhCorsService {

    /** 用户地址Mapper **/
    @Autowired
    private TYyxtDdglYhdzbMapper tYyxtDdglYhdzbMapper;

    /**
     * getShdz,(获取收货地址). <br/>
     * Author: zhucb <br/>
     * Create Date: 2017年3月31日 <br/>
     * =============================================================== <br/>
     * Modifier: zhucb <br/>
     * Modify Date: 2017年3月31日 <br/>
     * Modify Description: <br/>
     * =============================================================== <br/>
     * 
     * @param zh 登录账号
     * @return 收货地址
     * @since JDK 1.7
     */
    @Override
    public TYyxtDdglYhdzb getShdz(String zh) {

        return tYyxtDdglYhdzbMapper.getYhdzByZh(zh);
    }

    /**
     * updateShdz,(编辑收货地址). <br/>
     * Author: zhucb <br/>
     * Create Date: 2017年4月1日 <br/>
     * =============================================================== <br/>
     * Modifier: zhucb <br/>
     * Modify Date: 2017年4月1日 <br/>
     * Modify Description: <br/>
     * =============================================================== <br/>
     * 
     * @param param 参数
     * @return 收货地址
     * @since JDK 1.7
     */
    @Override
    public ResultJson updateShdz(TYyxtDdglYhdzb param) {
        ResultJson resultJson = new ResultJson(false);
        List<ErrorBean> errCodeList = new ArrayList<ErrorBean>();

        // 账号不能为空
        if (StringUtils.isBlank(param.getZh())) {
            resultJson.setMessage(ValidatorConstants.E1200);
            return resultJson;
        }

        // 业务域不能为空
        if (StringUtils.isBlank(param.getYwy())) {
            resultJson.setMessage(ValidatorConstants.E1204);
            return resultJson;
        }

        // 收货详细地址不能为空
        if (StringUtils.isBlank(param.getShxxdz())) {
            ErrorBean errorBean = new ErrorBean();
            errorBean.setErrorData(ValidatorConstants.E1201);
            errCodeList.add(errorBean);
        }

        if (errCodeList.size() > 0) {
            resultJson.setErrorList(errCodeList);
            return resultJson;
        }

        Date now = new Date();
        if (param.getId() == null) { // 新增收货地址
            param.setId(this.getKey());
            param.setDelflag(GlobalConstants.DELFLAG_ADD);
            param.setVersions(this.getVersion());
            param.setOperatercode(param.getZh());
            param.setOperatetime(now);
            param.setCreatercode(param.getZh());
            param.setCreatertime(now);
            tYyxtDdglYhdzbMapper.insertYhdzb(param);
        } else { // 修改收货地址
            param.setDelflag(GlobalConstants.DELFLAG_UPDATE);
            param.setVersions(this.getVersion());
            param.setOperatercode(param.getZh());
            param.setOperatetime(now);
            tYyxtDdglYhdzbMapper.updateYhdzbById(param);
        }
        resultJson.setResult(true);
        return resultJson;
    }

}
